<?php
	
	class AtividadesController extends AppController {
    	public $helpers = array('Html', 'Form');
    	public $uses = array('Atividade', 'User', 'Comentario', 'Feed');

    	public function index() {
	        $this->set('atividades', $this->Atividade->find('all',  array('conditions' => array('user_id' => $this->Session->read('Auth.User.id')))));
	    }

	    public function adicionar() {
	        if ($this->request->is('post')) {
	            $this->Atividade->create();
	            $this->Feed->create();
		        $usuario = $this->User->find('all',  array('conditions' => array('id' => $this->Session->read('Auth.User.id')))); 
	            $this->request->data['Feed']['feed'] = $usuario[0]['User']['nome'] . " adicionou uma nova atividade diária.";
	            $this->request->data['Feed']['data'] = date('Y-m-d H:i:s');
	            $this->request->data['Feed']['id_user'] = $usuario[0]['User']['id'];
	            if ($this->Atividade->save($this->request->data['Atividade'])) {
	            	$this->Feed->save($this->request->data['Feed']);
	                $this->Session->setFlash(__('Sua atividade diária foi salva com sucesso'));
	                return $this->redirect(array('action' => 'index'));
	            }
	            $this->Session->setFlash(__('Não foi possível salvar sua atividade diária, tente novamente'));
	        }
    	}

    	public function editar($id = null) {
		    if (!$id) {
		        throw new NotFoundException(__('Nenhuma atividade diária foi encontrada'));
		    }

		    $rel = $this->Atividade->findById($id);
		    if (!$rel) {
		        throw new NotFoundException(__('Nenhuma atividade diária foi encontrada'));
		    }

		    if ($this->request->is(array('post', 'put'))) {
		        $this->Atividade->id = $id;
		        $this->Feed->create();
		        $usuario = $this->User->find('all',  array('conditions' => array('id' => $this->Session->read('Auth.User.id')))); 
	            $this->request->data['Feed']['feed'] = $usuario[0]['User']['nome'] . " editou uma atividade diária.";
	            $this->request->data['Feed']['data'] = date('Y-m-d H:i:s');
	            $this->request->data['Feed']['id_user'] = $usuario[0]['User']['id'];
		        if ($this->Atividade->save($this->request->data['Atividade'])) {
		        	$this->Feed->save($this->request->data['Feed']);
		            $this->Session->setFlash(__('Sua atividade diária foi atualizada'));
		            return $this->redirect(array('action' => 'index'));
		        }
		        $this->Session->setFlash(__('Não foi possível atualizar a sua atividade diária, tente novamente'));
		    }

		    if (!$this->request->data) {
		        $this->request->data = $rel;
		    }
		}

		public function deletar($id) {
		    if ($this->request->is('get')) {
		        throw new MethodNotAllowedException();
		    }

		    if ($this->Atividade->delete($id)) {
		    	$this->Feed->create();
		        $usuario = $this->User->find('all',  array('conditions' => array('id' => $this->Session->read('Auth.User.id')))); 
	            $this->request->data['Feed']['feed'] = $usuario[0]['User']['nome'] . " deletou uma atividade diária.";
	            $this->request->data['Feed']['data'] = date('Y-m-d H:i:s');
	            $this->request->data['Feed']['id_user'] = $usuario[0]['User']['id'];
	            $this->Feed->save($this->request->data['Feed']);
		        $this->Session->setFlash(
		            __('A atividade diária com id %s foi deletada.', h($id))
		        );
		        return $this->redirect(array('action' => 'index'));
		    }
		}

		public function ver($id = null) {
	        if (!$id) {
	            throw new NotFoundException(__('Atividade inválida'));
	        }

	        $atividade = $this->Atividade->findById($id);
	        $options=array(             
	        	'fields' => array('Comentario.*', 'User.*'),
	        	'joins' =>
	        	array(
	        		array(
	        			'table' => 'users',
	        			'alias' => 'User',
	        			'type' => 'INNER',
	        			'conditions'=> array('User.id = Comentario.userID AND Comentario.atividadeID = ' . $id)
	        			)
	        	));
	        $comentarios = $this->Comentario->find('all', $options);
	        if (!$atividade) {
	            throw new NotFoundException(__('Atividade inválida'));
	        }

	        if ($this->request->is('post')) {
	            $this->Comentario->create();
	            $this->Feed->create();
		        $usuario = $this->User->find('all',  array('conditions' => array('id' => $this->Session->read('Auth.User.id')))); 
	            $this->request->data['Feed']['feed'] = $usuario[0]['User']['nome'] . " adicionou um comentário em uma atividade diária.";
	            $this->request->data['Feed']['data'] = date('Y-m-d H:i:s');
	            $this->request->data['Feed']['id_user'] = $usuario[0]['User']['id'];
	            if ($this->Comentario->save($this->request->data['Atividade'])) {
	            	$this->Feed->save($this->request->data['Feed']);
	                $this->Session->setFlash(__('Seu comentário foi salvo com sucesso'));
	                return $this->redirect(array('action' => 'index'));
	            }
	            $this->Session->setFlash(__('Não foi possível salvar seu comentário, tente novamente'));
	        }


	        $this->set('atividade', $atividade);
	        $this->set('comentarios', $comentarios);
	    }
	}

?>